package com.fy.proj5_permission_transaction_cache.service;

import com.fy.proj5_permission_transaction_cache.model.User;

import java.util.List;

public interface UserService {
    // 查询所有用户
    List<User> findAllUsers();
    
    // 根据ID查询用户
    User findUserById(Long id);
    
    // 根据用户名查询用户
    User findUserByUsername(String username);
    
    // 添加用户
    boolean addUser(User user);
    
    // 更新用户
    boolean updateUser(User user);
    
    // 删除用户
    boolean deleteUser(Long id);
    
    // 分页查询用户
    List<User> findUsersByPage(int page, int pageSize);
    
    // 分页搜索用户
    List<User> findUsersByPageAndSearch(int page, int pageSize, String search);
    
    // 获取用户总数
    int getUserCount();
    
    // 根据搜索条件获取用户总数
    int getUserCountBySearch(String search);
    
    // 为用户分配角色
    boolean assignRolesToUser(Long userId, List<Long> roleIds);
    
    // 查询用户及其角色
    User findUserWithRoles(Long userId);
}